看到五六年前拍到的一張照片,真的即使有用 DI 跟 interface 也不要這樣無腦的注入一堆相依物件,無視職責跟相關設計原則的問題。
看到這種待測試的 SUT 得注入一堆依賴物件時,其實就在反應設計上可能的兩種職責問題。
可以參考我之前整理的文章:https://dotblogs.com.tw/hatelove/2017/01/23/bad-smells-discovered-by-unit-testing
發現問題是第一步,重構它是第二步,還好這種重構基本上也不太需要太多的手動介入,如果你對 code smell, 設計原則, 重構技巧, 工具支援的 feature 更熟,這種重構就可以整個套路打完,一氣呵成。